Skip to content

Methodology

4 properties of Software:

  • Conformity
  • Invisibility
  • Complexity
  • Changeability

Fundamental Process:

  • Specification: specify the requirement
  • Development(Design and Implementation)
  • Validation
  • Evolution

Plan-driven: pre-plan all things and follow the plan Agile: frequent release of the software. Test-First -> Scrum: An Agile with a project management framework

Agile Principle:

  • Customer involvement
  • Incremental delivery
  • People not process
  • Embrace change
  • Maintain simplicity

Requirement Engineering Process:

  • Elicitation and Analysis: Discovering requirements from stakeholder
  • Specification: Converting requirements into standard form
  • Validation: Checking the requirements actually define the required system

Elicitation Techniques:

  • Interview
  • Questionnaire
  • Focus Group: group interview
  • Observation

UML diagram:

  • Activity
  • Use case
  • Sequence
  • Class
  • State Machine

System Architecture:

  • Components
  • How they use other's functionality and data
  • manage between components

Architecture:

  • Pipe and Filter
  • Client and Server
  • Layered
  • Repository
  • Model-View-Controller

Design OO System:

  1. Understand the context and interaction with system
  2. Design architecture
  3. Identify principle
  4. Develop model
  5. Specify interfaces

OOD Principles:

  • Single Responsibility
  • Open/ Closed: Open for extension, Close for modification
  • Liskov Substitution : child>= parent
  • Interface Segregation
  • Dependency Inversion

Design Patterns:

  • Creational:
    • Singleton
    • Factory
  • Structural
    • Adapter
    • Facade
  • Behavioral
    • Observer
    • Strategy

Static Testing:

  • WalkThrough
  • Inspection

Dynamic Testing:

  • White box testing:
    • Statement
    • Decision
    • Condition
    • Multiple-Condition
  • Black box testing

Testing:

  • Unit Testing
  • Integration Testing
  • System Testing

Maintenance:

  • Bug fixing
  • Modifying software
  • Implementing requirements

DS

DS's Main purpose:

  • Transparency
  • Openness
  • Scalable

DS's Main Challenges:

  • No Global Clock
  • Concurrency
  • Failure Handles
  • Scalability
  • Heterogeneity

Middleware features:

  • Remote method Invocation
  • communication between group of process
  • Event notification
  • partition/placement/retrieval of shared object
  • replication of shared object
  • Real-time Multimedia Transmission

Transparency:

  • Access
  • Location
  • Replication
  • Mobility
  • Scaling
  • Failure

Performances:

  • Responsiveness
  • Throughput
  • Balancing Computational Loads

Failure Handling:

  • Detect
  • Mask
  • Tolerate
  • Recover
  • Redundancy

QoS:

  • Reliability
  • Security
  • Performance
  • Adaptability

Clock Synchronization Algorithms:

  • Centralized:
    • Cristian's
    • Berkeley
  • Decentralized:
    • Averaging
    • Multiple External Time Sources

Mutual exclusion:

  • Centralized
  • Distributed
  • Token Ring

Election:

  • Ring
  • Bully

File System:

  • Organization
  • Storage
  • Retrieval
  • Naming
  • Sharing
  • Protection

File System Modules:

  • Directory
  • File
  • Access control
  • Block
  • Device

File System Components:

  • File Servers
  • Clients
  • File Services

Flat File System Components:

  • Flat File Service
  • Directory Services
  • Client Module

Route Influence:

  • Destination
  • Bandwidth
  • Network Topology
  • Routing Table
  • Load Balancing
  • Network Congestion

DHT:

  • Decentralized
  • Scalability
  • Fault Tolerance

Reliable Multicast:

  • Integrity
  • Validity
  • Agreement

GMS:

  • Member change Interface
  • Failure detection
  • Notifying membership changes
  • Group address expansion

Requirements of Group view update:

  • Order
  • Integrity
  • Non-triviality

Replication System Components:

  • Client
  • Front End
  • Replica Manager

RS request:

  1. Request
  2. Coordination
  3. Execution
  4. Agreement
  5. Response

Easy to be attack:

  • Resource Sharing
  • Exposed Interfaces
  • Insecure Networks
  • Known Algorithms

Security Threats:

  • Leakage
  • Tampering
  • Vandalism

Method of Attacks:

  • Eavesdropping
  • Masquerading
  • Message Tampering
  • Replay
  • Dos

Uses of Cryptography:

  • Secrecy and Integrity
  • Authentication
  • Digital Signatures

Cryptography's Applications:

  • Digital Certificates
  • Access Control
  • Capabilities